The present invention relates to network management in general and in particular to preference management in a network environment.
Traditional mainframe computer configurations provided for user interface to the computer through computer terminals which were directly connected by wires to ports of the mainframe computer. As computing technology has evolved, processing power has typically evolved from a central processing center with a number of relatively low-processing power terminals to a distributed environment of networked processors. Examples of this shift in processing include local or wide area computer networks which interconnect individual work stations where each workstation has substantial independent processing capabilities. This shift may be further seen in the popularity of the Internet which interconnects many processors and networks of processors through devices such as, for example, routers. This type of network environment is often referred to as a client-server environment with client stations coupled to and supported by a server station.
In the modern distributed processing computer environment, control over software, such as application programs, is more difficult than where a mainframe operated by an administrator is used, particularly for large organizations with numerous client stations and servers distributed widely geographically and utilized by a large number of users. Furthermore, individual users may move from location to location and need to access the network from different client stations at different times. The networked environment increases the challenges for a network administrator in maintaining proper licenses for existing software and deploying new or updated applications programs across the network.
A further complication in network systems is that, typically, these systems include combinations of network applications and native applications. As used herein xe2x80x9cnative applicationsxe2x80x9d refers to applications which are installed locally on a workstation such that preferences associated with the native application are stored on the workstation. For example, certain applications may be unavailable in network versions and may require installation on a local storage device. These applications are typically difficult to manage in that user preferences are individual to the workstation. Thus, when a user moves from workstation to workstation the user""s preferences typically do no migrate to the new workstation.
Efforts to provide preference mobility include, for example, Novell""s Z.E.N.works(trademark), Microsoft""s xe2x80x9cZero Administrationxe2x80x9d initiative for Windows(copyright) and International Business Machines Corporation""s (IBM""s) Workspace On Demand(trademark). However, these solutions each typically require pre-installation of software at the workstation to support their services. For example, Novell""s Z.E.N. and IBM""s Workspace On Demand utilize a vendor-supplied support layer in the operating system to enable their services. In addition to modifying the workstations operating system at startup to setup tasks to customize the user""s environment, the Microsoft Zero Administration solution may be limited to a homogeneous environment where the workstation and the server are utilizing the same operating system.
These various approaches fail to provide a seamless integration of user preferences for native applications across heterogeneous networks. Furthermore, such solutions may reduce network administration only after initial installation on each workstation.
Accordingly, it is an object of the present invention to provide methods, systems and computer program products for management of preferences in a network environment.
It is a further object of the present invention to provide such methods, systems and computer program products which do not require pre-installation of software at the workstations.
It is a further object of the present invention to provide such methods, systems and computer program products that can automatically accommodate various types of hardware operating under different operating systems.
These and other objects are provided, according to the present invention, by selecting a native application and obtaining a software routine and user preferences from a server which allows installation of the user preferences on the computer obtaining the preferences. Thus, the software routine obtained may be tailored to the particular computing environment executing the native application. This routine may be downloaded without requiring intervention at the computer and may be downloaded only if needed by selection of an application. Furthermore, the user preferences may be selected based on a user or user group such that the preferences may be used on different computers by the same user or user group.
Obtaining a software routine when a native application is selected, where the software routine obtains and installs user preferences, allows for the user preferences to be commonly maintained. Furthermore, the obtaining of a software routine allows differing software routines to be obtained for differing operating environments, for example differing operating systems. Thus, group consistency may be maintained by maintenance of the user preferences in a repository of preferences and by providing preferences for the differing operating environments in a network. Furthermore, because the preferences are obtained from a computer other than the user""s computer, the preferences for the native application may be transpotrted from computer to computer as the user moves from computer to computer. Such portable preferences may even be supported if the computers utilize different operating system. Accordingly, the present invention allows for management of preferences in a heterogenous network while maintaining preference portability and group consistency. Furthermore, the present invention allows for mobility and group consistency of preferences in systems which use existing applications in existing operating systems without modification of either the operating system or the application.
In a particular embodiment of the present invention, user preferences associated with an application resident on a first computer are established based on preferences resident on a second computer remote from the first computer by obtaining from a computer other than the first computer, a software routine corresponding to the first computer. The software routine is executed on the first computer to retrieve the user preferences associated with the application from the second computer and replace native user preferences resident on the first computer and associated with the application with the retrieved user preferences. It is determined if an instance of the application has been requested by a user of the first computer and an instance of the application is launched on the first computer utilizing the retrieved user preferences.
In a further embodiment, the user preferences are retrieved by selecting user preferences associated with the application resident on the first computer from a plurality of user preferences resident on the second computer. The selected user preferences are then retrieved. The user preferences are selected based upon a user logged onto the first computer. Furthermore, the user preferences may be selected based on characteristics of an operating environment of the first computer. In particular, the characteristics of the operating environment may comprise the type of operating system of the first computer.
In another embodiment of the present invention, the software routine may be obtained by selecting a software routine from a plurality of software routines stored on at least one computer other than the first computer, wherein the software routine is selected based on characteristics of the first compute. The selected software routine is then retrieved. In particular, the characteristics of the first computer may be a type of operating system of the first computer.
In still another embodiment of the present invention, the native user preferences are stored, It is determined if the launched instance of the application has terminated and the retrieved user preferences are then replaced with the native user preferences after the application terminates.
In still another embodiment of the present invention, the determining, retrieving and replacing operations are carried out for each request by a user to execute the application.
Furthermore, any changes in the user preferences associated with an application resident on the first computer may be stored for use on the second computer. Thus, any changes in user preferences may be accessed at a later time by the user.
In a particular embodiment of the present invention, the software routine is a machine independent software routine. Thus, the software routine may be a JAVA applet.
In another embodiment of the present invention, user preferences associated with an application resident on a first computer are established by determining an operating environment associated with the first computer and providing a software routine corresponding to the determined operating environment to the first computer. User preferences are selected based on the determined operating environment and the selected user preferences installed on the first computer using the obtained software routine. The user preferences may also be selected based upon a user logged onto the first computer.
In a further embodiment, users are associated with a group. In such a case, the user preferences may be selected based on the group associated with a user logged onto the first computer.
In another embodiment, the installation of the selected user preferences may be preceded by copying user preferences stored on the first computer. Furthermore, the installation may be followed by launching the application on the first computer. It may then be determined if the launched application has terminated. The copied user preferences may then be re-installed on the first computer. Such re-installing operation may be preceded by storing the user preferences on a second computer remote from the first computer.
While the invention has been described above primarily with respect to the method aspects of the invention, both systems and computer program products are also provided.